package com.ruoyi.fileMaintenance.mapper;

import java.util.List;

import com.ruoyi.fileMaintenance.domain.TChineseMeaning;
import com.ruoyi.fileMaintenance.domain.TCourseLearning;
import com.ruoyi.fileMaintenance.domain.TCourseBinding;
import com.ruoyi.fileMaintenance.domain.TLearningMaterials;
import com.ruoyi.fileMaintenance.domain.dto.TLearningMaterialsDto;
import org.apache.ibatis.annotations.Param;

/**
 * 学习资料Mapper接口
 * 
 * @author ruoyi
 * @date 2024-03-27
 */
public interface TLearningMaterialsMapper 
{
    /**
     * 查询学习资料
     * 
     * @param id 学习资料主键
     * @return 学习资料
     */
    public TLearningMaterials selectTLearningMaterialsById(Long id);

    /**
     * 查询学习资料列表
     * 
     * @param tLearningMaterials 学习资料
     * @return 学习资料集合
     */
    public List<TLearningMaterials> selectTLearningMaterialsList(TLearningMaterials tLearningMaterials);

    /**
     * app查询学习资料列表 全部
     *
     * @param tLearningMaterialsDto 学习资料
     * @return 学习资料集合
     */
    public List<TLearningMaterials> selectAllTLearningMaterialsList(TLearningMaterialsDto tLearningMaterialsDto);

    /**
     * app查询学习资料列表 已学
     *
     * @param tLearningMaterialsDto 学习资料
     * @return 学习资料集合
     */
    public List<TLearningMaterials> selectLearnedTLearningMaterialsList(TLearningMaterialsDto tLearningMaterialsDto);

    /**
     * app查询学习资料列表 未学
     *
     * @param tLearningMaterialsDto 学习资料
     * @return 学习资料集合
     */
    public List<TLearningMaterials> selectUnlearnedTLearningMaterialsList(TLearningMaterialsDto tLearningMaterialsDto);

    /**
     * app 随机查课程下未学单词 1条数据
     *
     * @param tLearningMaterialsDto 学习资料
     * @return 学习资料集合
     */
    public TLearningMaterials selectUnlearnedTLearningMaterials(TLearningMaterialsDto tLearningMaterialsDto);

    /**
     * app 单词测试
     *
     * @param tLearningMaterials 学习资料
     * @return 学习资料集合
     */
    public List<TLearningMaterials> selectTLearningMaterialsTest(TLearningMaterials tLearningMaterials);

    /**
     *  app 随机三条数据
     *
     * @param id
     * @param courseId
     * @return 学习资料集合
     */
    public List<TLearningMaterials> selectRandomTLearningMaterials(@Param("id") Long id);

    /**
     * 新增学习资料
     * 
     * @param tLearningMaterials 学习资料
     * @return 结果
     */
    public int insertTLearningMaterials(TLearningMaterials tLearningMaterials);

    /**
     * 修改学习资料
     * 
     * @param tLearningMaterials 学习资料
     * @return 结果
     */
    public int updateTLearningMaterials(TLearningMaterials tLearningMaterials);

    /**
     * 删除学习资料
     * 
     * @param id 学习资料主键
     * @return 结果
     */
    public int deleteTLearningMaterialsById(Long id);

    /**
     * 批量删除学习资料
     * 
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteTLearningMaterialsByIds(Long[] ids);

    /**
     * 查询词性
     *
     * @param id 学习资料主键
     * @return 学习资料
     */
    public List<TChineseMeaning> selectTChineseMeaningList(Long id);

    /**
     * 新增词性
     *
     * @param tChineseMeaningList 词性集合
     * @return 结果
     */
    public int insertTChineseMeaning(List<TChineseMeaning> tChineseMeaningList);

    /**
     * 删除词性
     *
     * @param id 学习资料主键
     * @return 结果
     */
    public int deleteTChineseMeaningById(Long id);

    /**
     * 新增学习情况
     *
     * @param tCourseLearning 学习情况
     * @return 结果
     */
    public int insertCourseLearning(TCourseLearning tCourseLearning);
}
